Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Coco/R</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="../_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Coco%2FR"> <link href="../_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="../_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="../_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="../_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="../_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="../_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="../_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="../_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="../_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="../_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="../_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="../_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="../_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="../_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="../_res_/footer.css">
<link rel="stylesheet" type="text/css" href="../_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Coco_R rootpage-Coco_R skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Coco/R</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="border-spacing:5px; font-size:90%; text-align:left; width:21em;">

<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:105%; text-align:center;">Coco/R
</th></tr>
<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td><b><a href="../Maintainer" title="Maintainer">Hauptentwickler</a></b>
</td>
<td>Institut für Systemsoftware, <a href="../Johannes_Kepler_Universit%C3%A4t_Linz" class="mw-redirect" title="Johannes Kepler Universität Linz">Johannes Kepler Universität Linz</a>
</td></tr>
<tr>
<td><b>Kategorie</b>
</td>
<td>Parser-Generator
</td></tr>
<tr>
<td><b>Lizenz</b>
</td>
<td><a href="../GNU_GPL" class="mw-redirect" title="GNU GPL">GNU GPL</a>
</td></tr>
<tr>
<td class="hintergrundfarbe5" colspan="2" style="text-align:center;"><a rel="nofollow" class="external free" href="https://ssw.jku.at/Research/Projects/Coco/">https://ssw.jku.at/Research/Projects/Coco/</a>
</td></tr></tbody></table>
<p><b>Coco/R</b> ist ein <a href="../Parsergenerator" title="Parsergenerator">Parsergenerator</a>, der aus einer <a href="../Attributierte_Grammatik#L-Attributgrammatiken" class="mw-redirect" title="Attributierte Grammatik">L-attributierten</a> <a href="../EBNF" class="mw-redirect" title="EBNF">EBNF</a>-Grammatik einer Quellsprache einen Scanner und einen Parser für diese Sprache erzeugt.
</p><p>Der <b><a href="../Lexikalischer_Scanner" class="mw-redirect" title="Lexikalischer Scanner">Scanner</a></b> arbeitet als <a href="../Endlicher_Automat" title="Endlicher Automat">endlicher Automat</a>. Er unterstützt <a href="../Unicode" title="Unicode">Unicode</a>-Zeichen in <a href="../UTF-8" title="UTF-8">UTF-8</a>-Kodierung und kann so konfiguriert werden, dass Groß-/Kleinschreibung ignoriert wird. Die Erkennung von Symbolen kann von ihrem rechten Kontext abhängig gemacht werden. Zusätzlich zu Terminalsymbolen kann der Scanner auch <a href="../Compiler-Anweisung" title="Compiler-Anweisung">Pragmas</a> verarbeiten, d.&nbsp;h. Symbole, die nicht zur Syntax der Sprache gehören, sondern an beliebiger Stelle des Eingabestroms vorkommen können (z.&nbsp;B. Compiler-Direktiven oder Zeilenende-Zeichen).
</p><p>Der <b><a href="../Parser" title="Parser">Parser</a></b> arbeitet nach der Methode des <a href="../Rekursiver_Abstieg" title="Rekursiver Abstieg">rekursiven Abstiegs</a>. LL(1)-Konflikte können durch Vorgriff um mehrere Symbole oder durch semantische Prüfungen gelöst werden. Somit ist die Klasse der akzeptierten Grammatiken <a href="../LL(k)-Grammatik" title="LL(k)-Grammatik">LL(k)</a> für beliebiges k. <a href="../Fuzzy-Suche" class="mw-redirect" title="Fuzzy-Suche">Fuzzy Parsing</a> kann durch ein ANY-Symbol erreicht werden, das komplementäre Symbolmengen beschreibt. Semantische Aktionen werden in der Sprache des erzeugten Scanners und Parsers beschrieben. Die Fehlerbehandlung im erzeugten Parser kann durch die Angabe von Synchronisationspunkten und "schwachen Terminalsymbolen" verfeinert werden. Die Grammatik wird auch auf Vollständigkeit, Konsistenz, Redundanzfreiheit und auf ihre LL(1)-Eigenschaft geprüft.
</p><p>Es gibt Versionen von Coco/R für die meisten modernen Sprachen (<a href="../Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>, <a href="../C_Sharp" class="mw-redirect" title="C Sharp">C#</a>, <a href="../C%2B%2B" title="C++">C++</a>, <a href="../Pascal_(Programmiersprache)" title="Pascal (Programmiersprache)">Pascal</a>, <a href="../Modula-2" title="Modula-2">Modula-2</a>, <a href="../Borland_Delphi" class="mw-redirect" title="Borland Delphi">Delphi</a>, <a href="../VB.NET" class="mw-redirect" title="VB.NET">VB.NET</a>, <a href="../Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a>, <a href="../Ruby_(Programmiersprache)" title="Ruby (Programmiersprache)">Ruby</a> und andere). Für die Java-Version existiert ein <a href="../Eclipse_(Software)" class="mw-redirect" title="Eclipse (Software)">Eclipse</a>-Plugin. Grammatiken für C# und Java stehen zum Download bereit.
</p><p>Coco/R wurde an der <a href="../Johannes_Kepler_Universit%C3%A4t_Linz" class="mw-redirect" title="Johannes Kepler Universität Linz">Universität Linz</a> entwickelt und steht unter einer Variante der <a href="../GNU_GPL" class="mw-redirect" title="GNU GPL"> GNU General Public License</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="../ANTLR" title="ANTLR">ANTLR</a></li>
<li><a href="../JavaCC" title="JavaCC">JavaCC</a></li>
<li>SableCC</li>
<li><a href="../GNU_Bison" title="GNU Bison">GNU Bison</a></li>
<li><a href="../Yacc" title="Yacc">Yacc</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Pat Terry: <cite style="font-style:italic">Compiling with C# and Java</cite>. Pearson, 2005, ISBN 978-0-321-26360-5.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Coco%2FR&amp;rft.au=Pat+Terry&amp;rft.btitle=Compiling+with+C%23+and+Java&amp;rft.date=2005&amp;rft.genre=book&amp;rft.isbn=9780321263605&amp;rft.pub=Pearson" style="display:none">&nbsp;</span> – Setzt Coco/R im Compilerbau ein. In Englisch.</li>
<li><a href="../Peter_Rechenberg" title="Peter Rechenberg">Peter Rechenberg</a>, <a href="../Hanspeter_M%C3%B6ssenb%C3%B6ck" title="Hanspeter Mössenböck">Hanspeter Mössenböck</a>: <cite style="font-style:italic">Ein Compiler-Generator für Mikrocomputer</cite>. Hanser, 1985, ISBN 3-446-14495-1.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Coco%2FR&amp;rft.au=Peter+Rechenberg%2C+Hanspeter+M%C3%B6ssenb%C3%B6ck&amp;rft.btitle=Ein+Compiler-Generator+f%C3%BCr+Mikrocomputer&amp;rft.date=1985&amp;rft.genre=book&amp;rft.isbn=3446144951&amp;rft.pub=Hanser" style="display:none">&nbsp;</span> – Das Buch beschreibt die Konstruktion von Coco in Modula-2.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.ssw.uni-linz.ac.at/Research/Projects/Coco/">Coco/R-Homepage</a></li>
<li><a rel="nofollow" class="external text" href="http://www.scifac.ru.ac.za/coco/">Coco/R-Seite von Pat Terry</a></li>
<li><a rel="nofollow" class="external text" href="https://ssw.jku.at/Research/Projects/Coco/Doc/UserManual.pdf">Coco/R-Benutzerhandbuch</a> (PDF; 248 kB)</li>
<li><a rel="nofollow" class="external text" href="https://ssw.jku.at/Research/Projects/Coco/Tutorial/">Coco/R-Tutorial (Folien von Hanspeter Mössenböck)</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2023-07-23" href="https://de.wikipedia.org/wiki/?title=Coco%2FR&amp;oldid=235727661">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="../_webp_/webpHandler.js"></script>

</body></html>